package com.aaa.service.impl;


import com.aaa.dao.GoodsDao;
import com.aaa.dto.GoodsLoginInfo;
import com.aaa.dto.UpdateCheckGoodsLogin;
import com.aaa.dto.UpdateGoodsInfo;
import com.aaa.pojo.DefaultMsg;
import com.aaa.pojo.Goods;
import com.aaa.pojo.GoodsType;
import com.aaa.service.GoodsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class GoodsServiceImpl implements GoodsService {

    private final GoodsDao goodsDao;

    @Autowired
    public GoodsServiceImpl(GoodsDao goodsDao) {
        this.goodsDao = goodsDao;
    }

    /**
     * 查询所有商品
     *
     * @return 返回所有商品集合
     */
    @Override
    public List<Goods> findAllGoods() {

        return goodsDao.findAllGoods();
    }

    /**
     * 添加商品
     *
     * @param goods 商品表的实体类
     * @return 是否成功的提示码
     */
    @Override
    public DefaultMsg addGoods(Goods goods) {
        DefaultMsg defaultMsg = new DefaultMsg(200, 1, null, null);
        int i = goodsDao.addGoods(goods);
        if (i == 0) {
            defaultMsg.setCode(500);
            defaultMsg.setMsg(0);
        }
        return defaultMsg;
    }

    /**
     * 查询所有商品类型
     *
     * @return 返回所有类型集合
     */
    @Override
    public List<GoodsType> findAllType() {
        return goodsDao.findAllType();
    }

    @Override
    public DefaultMsg updateStateOfGoodsById(Integer id, Integer state) {
        DefaultMsg defaultMsg = new DefaultMsg(200, 1, null, null);
        int i = goodsDao.updateStateOfGoodsById(id, state);
        if (i == 0) {
            defaultMsg.setMsg(0);
        }
        return defaultMsg;
    }

    @Override
    public DefaultMsg updateCountOfGoodsById(Integer id, Integer buyCount) {
        DefaultMsg defaultMsg = new DefaultMsg(200, 1, null, null);
        int i = goodsDao.updateCountOfGoodsById(id, buyCount);
        if (i == 0) {
            defaultMsg.setMsg(0);
        }
        return defaultMsg;
    }

    @Override
    public DefaultMsg addGoodsLoginInfo(GoodsLoginInfo goodsLoginInfo) {
        DefaultMsg defaultMsg = new DefaultMsg(200, 1, null, null);
        int i = goodsDao.addGoodsLoginInfo(goodsLoginInfo);
        if (i == 0) {
            defaultMsg.setMsg(0);
        }
        return defaultMsg;
    }

    @Override
    public List<GoodsLoginInfo> findGoodsLoginInfo() {
        return goodsDao.findGoodsLoginInfo();
    }

    @Override
    public DefaultMsg updateStatusById(UpdateCheckGoodsLogin updateCheckGoodsLogin) {
        DefaultMsg defaultMsg = new DefaultMsg(200, 1, null, null);
        int i = goodsDao.updateStatusById(updateCheckGoodsLogin);
        int i2 = goodsDao.updateCountByGoodsId(updateCheckGoodsLogin);
        if (i == 0 || i2 == 0) {
            defaultMsg.setMsg(0);
        }
        return defaultMsg;
    }

    @Override
    public DefaultMsg updateGoodsInfoByGoodsId(UpdateGoodsInfo updateGoodsInfo) {
        DefaultMsg defaultMsg = new DefaultMsg(200, 1, null, null);
        int i = goodsDao.updateGoodsInfoByGoodsId(updateGoodsInfo);
        if (i == 0) {
            defaultMsg.setMsg(0);
        }
        return defaultMsg;
    }
}
